#include <iostream>
#include <cstdlib>

int main()
{
    // int * p = (int*)malloc(sizeof(int));
    // if(p == nullptr)
    // {
    //     return -1;
    // }
    // *p = 20;

    // int *p = new int(20);
    // std::cout<<*p<<std::endl;
    // delete p;//释放指针p

    // //申请数组
    // int *p = new int[5];
    // for(int i = 0; i < 5; i++)
    // {
    //     p[i] = i + 1;
    // }
    // for(int i = 0; i < 5; i++)
    // {
    //     std::cout<<p[i]<<" ";
    // }
    // std::cout<<std::endl;
    // delete []p;//释放数组

    //二维数组
    int** p = new int*[2];
    for(int i = 0; i < 2; i++)
    {
        p[i] = new int[3];
    }
    for(int i = 0 ; i < 2; i++)
    {
        for(int j = 0 ; j < 3; j++)
        {
            p[i][j] = i * 3 + j + 1;
            std::cout<<p[i][j]<<" ";
        }
        std::cout<<std::endl;
    }
    for(int i = 0; i < 2;i++)
    {
        delete []p[i];
    }
    delete []p;
    return 0;

    return 0;
}